"""
Graduation Project - Robotics Simulation with G1 Humanoid Robot

A robotics simulation platform built on NVIDIA Omniverse Isaac Sim 4.5.0,
featuring G1 humanoid robot control with keyboard input and ONNX policy integration.

This package provides a modular architecture for robot control, simulation,
and interaction, designed for embodied AI research and education.
"""

__version__ = "0.1.0"
__author__ = "Graduation Project Team"

# Import key classes for convenience when using as a package
try:
    from .core.robot import SimpleG1Robot
    from .controllers.keyboard import DirectKeyboardController
    from .controllers.g1_controller import G1MoveBySpeedController
    from .core.config import ROBOT_CONFIG, G1_PD_GAINS, SIMULATION_LOOP
    from .utils.joint_mapping import JointMapping
    __all__ = [
        'SimpleG1Robot',
        'DirectKeyboardController',
        'G1MoveBySpeedController',
        'JointMapping',
        'ROBOT_CONFIG',
        'G1_PD_GAINS',
        'SIMULATION_LOOP'
    ]
except ImportError as e:
    # Isaac Sim dependencies not available in this environment
    # In Isaac Sim environment, these classes will be available
    import warnings
    warnings.warn(f"Graduation Project: Isaac Sim dependencies not available. Import error: {e}")

    # Provide empty classes for type checking when Isaac Sim is not available
    __all__ = [
        'SimpleG1Robot',
        'DirectKeyboardController',
        'G1MoveBySpeedController',
        'JointMapping',
        'ROBOT_CONFIG',
        'G1_PD_GAINS',
        'SIMULATION_LOOP'
    ]

    # Create placeholder classes to avoid import errors
    class SimpleG1Robot:
        """Placeholder class - requires Isaac Sim environment"""
        pass

    class DirectKeyboardController:
        """Placeholder class - requires Isaac Sim environment"""
        pass

    class G1MoveBySpeedController:
        """Placeholder class - requires Isaac Sim environment"""
        pass

    class JointMapping:
        """Placeholder class - requires Isaac Sim environment"""
        pass

    # Default configurations
    ROBOT_CONFIG = {}
    G1_PD_GAINS = {}
    SIMULATION_LOOP = {}